Reconstruir a POO em Rust envolve mudar das hierarquias de classes rígidas para um modelo focado em separação de dados-comportamento. Enquanto linguagens tradicionais de sistemas dependem de árvores complexas de objetos, o Rust atinge os objetivos do design orientado a objetos — encapsulamento e polimorfismo — usando traços e módulos para priorizar a segurança da memória sem sobrecarga em tempo de execução.
1. Desafiando a Hierarquia
O Rust evita explicitamente a herança de implementação para prevenir o problema do classe-base frágil problema. Em vez disso, prefere a composição e Traços para definir comportamentos compartilhados entre tipos diversos. Um "objeto" aqui é uma combinação de dados (estruturas) e procedimentos (bloco impl), verificado em tempo de compilação.
2. Concorrência & Estado como Tipo
O Rust lida com concorrência principalmente através da biblioteca padrão (Send/Sync traços) e não no núcleo da linguagem. Para maximizar a segurança, o Algoritmo Estado como Tipo codifica estados distintos em tipos diferentes. As transições retornam novas instâncias, movendo a lógica dos comandos em tempo de execução if para requisitos em tempo de compilação.